#include <stdio.h>
#include <stdlib.h>
#include "QUEUE.h"

/**
 * File: TestListQUEUE.c
 * -----------------------
 * 编译：
 * gcc -g -O0 -o TestListQUEUE TestListQUEUE.c ListQUEUE.c
 * gcc -o TestListQUEUE TestListQUEUE.c ListQUEUE.c
 * ------------------------
 * 调试：
 * mac: lldb ./TestListQUEUE
 * 其它: gdb ./TestListQUEUE
 * ------------------------
 * 运行：
 * ./TestListQUEUE
 */
int main() {
    // 初始化队列
    QUEUEinit(100);

    // 输入序列：F I R S * T * I N * * * F I * R S * * * T * O U T * * * * *
    // 模拟操作
    
    // put 操作
    QUEUEput('F');
    QUEUEput('I');
    QUEUEput('R');
    QUEUEput('S');
    
    // get 操作（打印出 'F'）
    printf("%c ", QUEUEget());
    
    QUEUEput('T');
    
    // get 操作（打印出 'I'）
    printf("%c ", QUEUEget());
    
    QUEUEput('I');
    QUEUEput('N');
    
    // get 操作（打印出 'R'）
    printf("%c ", QUEUEget());
    
    // get 操作（打印出 'S'）
    printf("%c ", QUEUEget());
    
    // put 操作
    QUEUEput('F');
    QUEUEput('I');
    
    // get 操作（打印出 'T'）
    printf("%c ", QUEUEget());
    
    QUEUEput('R');
    QUEUEput('S');
    
    // get 操作（打印出 'I'）
    printf("%c ", QUEUEget());
    
    // get 操作（打印出 'N'）
    printf("%c ", QUEUEget());
    
    // get 操作（打印出 'F'）
    printf("%c ", QUEUEget());
    
    // get 操作（打印出 'I'）
    printf("%c ", QUEUEget());
    
    // put 操作
    QUEUEput('T');
    
    // get 操作（打印出 'R'）
    printf("%c ", QUEUEget());
    
    // put 操作
    QUEUEput('O');
    QUEUEput('U');
    QUEUEput('T');
    
    // get 操作（打印出 'S'）
    printf("%c ", QUEUEget());
    
    // get 操作（打印出 'T'）
    printf("%c ", QUEUEget());
    
    // get 操作（打印出 'O'）
    printf("%c ", QUEUEget());
    
    // get 操作（打印出 'U'）
    printf("%c ", QUEUEget());
    
    // get 操作（打印出 'T'）
    printf("%c ", QUEUEget());

    printf("\n");
    
    return 0;
}